﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Linq;
/*
45456
*/
namespace ProyectoEscuela
{
    public partial class frmModificacionDatosIDAgente : ProyectoEscuela.frmBaseForm
    {
        dbProyectoEscuelaDataContext db = new dbProyectoEscuelaDataContext();
        Persona agente;

        public frmModificacionDatosIDAgente()
        {
            InitializeComponent();
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            

            try
            {
                 agente = db.Personas.Single(p => p.TipoDoc == cmbTipoDoc.Text.ToString() && p.Numdoc == txtDoc.Text.ToString());
              
            }
            catch (Exception ex)
            {
                frmBuscarPersona frm = new frmBuscarPersona("agente");

                frm.ShowDialog();

                agente = frm.getAgente();
                //cargamos los combos
                cmbTipoDoc.Text = agente.TipoDoc;
                txtDoc.Text = agente.Numdoc;


            }

           
            // Datos Anteriores
            txtNumDocAnterior.Text = agente.Numdoc;
            txtTipoDocAnterior.Text = agente.TipoDoc;
            txtApellidoAnterior.Text = agente.Apellido;
            txtNombreAnterior.Text = agente.Nombre;
            txtSexoAnterior.Text = agente.Sexo;
            
            txtApellido.Text = agente.Apellido;
            txtNombre.Text = agente.Nombre;
            cmbSexo.Text = agente.Sexo;

            cmbTipoDocNuevo.Text = agente.TipoDoc;
            txtNumDocNuevo.Text = agente.Numdoc;
            if (agente.lugarUltimaModif != null || agente.lugarUltimaModif=="")
                txtLugarPresentacion.Text = agente.lugarUltimaModif;
            else
                txtLugarPresentacion.Text = "";

            if (agente.fechaUltimaModif != null)
                cmbFechaPresentacion.Value = (System.DateTime)agente.fechaUltimaModif;

        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            // VALIDACIONES 
            String msjError = "Favor de ingresar y/o seleccionar un valor";
            bool errores = false;
            Control[] controlesAValidar = {
                 cmbTipoDoc,
                 txtDoc,
                 txtNombre,
                 txtApellido,
                 cmbSexo
                                          };

            foreach (Control val in controlesAValidar)
            {
                if (errores == false) errores = ValVacio(val, msjError);
            }



            if (errores)
                MessageBox.Show("Favor de Verificar los datos ingresados.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            else
            {
                // ACCION EN CASO DE K VAYA BIEN...
                guardarAgente();
                limpiarCampos();
            }



            
        }

        private void limpiarCampos()
        {
            cmbTipoDoc.Text = "";
            txtDoc.Text = "";
            txtNumDocAnterior.Text = "";
            txtTipoDocAnterior.Text = "";
            txtApellidoAnterior.Text = "";
            txtNombreAnterior.Text = "";
            txtSexoAnterior.Text = "";

            txtApellido.Text = "";
            txtNombre.Text = "";
            cmbSexo.Text = "";

            cmbTipoDocNuevo.Text = "";
            txtNumDocNuevo.Text = "";
            txtLugarPresentacion.Text = "";
            cmbFechaPresentacion.Value = System.DateTime.Today;

        }


        private void guardarAgente() {

            try {
            //Persona agente = db.Personas.Single(p => p.TipoDoc == cmbTipoDoc.Text.ToString() && p.Numdoc == txtDoc.Text.ToString());

            agente.Apellido = txtApellido.Text;
            agente.Nombre = txtNombre.Text;
            agente.TipoDoc = cmbTipoDocNuevo.Text;
            agente.Numdoc = txtNumDocNuevo.Text;
            agente.Sexo = cmbSexo.Text;
            agente.lugarUltimaModif = txtLugarPresentacion.Text;
            agente.fechaUltimaModif = DateTime.Parse(cmbFechaPresentacion.Text);

            db.SubmitChanges();

            MessageBox.Show("Modificaciones guardadas exitosamente.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Warning);

            }
            catch {
                MessageBox.Show("No existe el Agente. Verifique el documento y que haya sido dado de alta.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        private void btnImprimir_Click(object sender, EventArgs e)
        {
            dsABMAgenteSH.AgenteDataTable dt;
            dsABMAgenteSH.AgenteRow dr;

            dt = new dsABMAgenteSH.AgenteDataTable();
            dr = dt.NewAgenteRow();


            // datos anteriores
            dr.apellidoAnterior = txtApellidoAnterior.Text;
            dr.nombreAnterior = txtNombreAnterior.Text;
            dr.numdocAnterior = txtNumDocAnterior.Text;
            dr.tipodocAnterior = txtTipoDocAnterior.Text;
            dr.sexoAnterior = txtSexoAnterior.Text;

            // datos nuevos
            dr.apellido = txtApellido.Text;
            dr.nombre = txtNombre.Text;
            dr.tipodoc = cmbTipoDocNuevo.Text;
            dr.numdoc = txtNumDocNuevo.Text;
            dr.sexo = cmbSexo.Text;

            dr.fechaPresentacion = cmbFechaPresentacion.Value.ToLongDateString();
            dr.lugarPresentacion = txtLugarPresentacion.Text;

            dt.Rows.Add(dr);

            rptModificacionDatosIDAgente rpt;
            rpt = new rptModificacionDatosIDAgente();
            rpt.SetDataSource((DataTable)dt);

            frmReportForm frm;
            frm = new frmReportForm(rpt);
            frm.ShowDialog();

        }

        private bool ValVacio(Control miControl, String mensajeError)
        {
            // devuelve true si es vacio
            bool bStatus = false;
            if (miControl.Text == "")
            {
                errorProvider1.SetError(miControl, mensajeError);
                bStatus = true;
            }
            else
                errorProvider1.SetError(miControl, "");
            return bStatus;
        }
   

  
  
   
    }
}
